package com.tju.ocean_ecology_website.entity;

import java.util.Date;
import java.io.Serializable;

/**
 * 活动表(Activity)实体类
 *
 * @author shaolong
 * @since 2025-04-29 19:19:48
 */
public class Activity implements Serializable {
    private static final long serialVersionUID = -30568615384596442L;
/**
     * 活动ID
     */
    private Long id;
/**
     * 活动标题
     */
    private String title;
/**
     * 活动描述
     */
    private String description;
/**
     * 活动图片URL
     */
    private String image;
/**
     * 组织ID
     */
    private Long organizationId;
/**
     * 队伍ID
     */
    private Long teamId;
/**
     * 组织名称（非数据库字段，用于关联查询）
     */
    private String organizationName;
/**
     * 活动日期
     */
    private Date date;
/**
     * 活动结束日期
     */
    private Date endDate;
/**
     * 活动地点
     */
    private String location;
/**
     * 详细地址
     */
    private String fullAddress;
/**
     * 地点图片URL
     */
    private String locationImage;
/**
     * 活动状态：0-即将开始, 1-进行中, 2-已结束
     */
    private Integer status;
/**
     * 审核状态：0-待审核, 1-已通过, 2-已拒绝
     */
    private Integer auditStatus;
/**
     * 拒绝原因
     */
    private String rejectReason;
/**
     * 最大参与人数
     */
    private Integer maxParticipants;
/**
     * 当前参与人数
     */
    private Integer currentParticipants;
/**
     * 活动时长（分钟）
     */
    private Integer duration;
/**
     * 创建时间
     */
    private Date createTime;
/**
     * 更新时间
     */
    private Date updateTime;


    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }

    public Long getOrganizationId() {
        return organizationId;
    }

    public void setOrganizationId(Long organizationId) {
        this.organizationId = organizationId;
    }

    public Long getTeamId() {
        return teamId;
    }

    public void setTeamId(Long teamId) {
        this.teamId = teamId;
    }

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }

    /**
     * 获取活动开始时间（兼容方法，实际返回date字段）
     */
    public Date getStartTime() {
        return date;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public String getLocation() {
        return location;
    }

    public void setLocation(String location) {
        this.location = location;
    }

    public String getFullAddress() {
        return fullAddress;
    }

    public void setFullAddress(String fullAddress) {
        this.fullAddress = fullAddress;
    }

    public String getLocationImage() {
        return locationImage;
    }

    public void setLocationImage(String locationImage) {
        this.locationImage = locationImage;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getMaxParticipants() {
        return maxParticipants;
    }

    public void setMaxParticipants(Integer maxParticipants) {
        this.maxParticipants = maxParticipants;
    }

    public Integer getCurrentParticipants() {
        return currentParticipants;
    }

    public void setCurrentParticipants(Integer currentParticipants) {
        this.currentParticipants = currentParticipants;
    }

    public Integer getDuration() {
        return duration;
    }

    public void setDuration(Integer duration) {
        this.duration = duration;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Integer getAuditStatus() {
        return auditStatus;
    }

    public void setAuditStatus(Integer auditStatus) {
        this.auditStatus = auditStatus;
    }

    public String getRejectReason() {
        return rejectReason;
    }

    public void setRejectReason(String rejectReason) {
        this.rejectReason = rejectReason;
    }

    public String getOrganizationName() {
        return organizationName;
    }

    public void setOrganizationName(String organizationName) {
        this.organizationName = organizationName;
    }
}

